#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[100010],jl[40],ans,sum;
const int mod=998244353;
void dfs(int u){
	if(u>n){
		int num=1,flg=0;
		for(int i=1;i<=n;i++){
			num*=a[i]-jl[i]+jl[i==1?n:i-1],num%=mod;
			if(jl[i]==0) flg=1;
		}
		ans+=num*flg,ans%=mod;
		return;
	}
	for(int i=0;i<=a[u];i++){
		jl[u]=i;
		dfs(u+1);
	}
}
signed main(){
	freopen("trade.in","r",stdin);
	freopen("trade.out","w",stdout);
	scanf("%lld",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		sum+=a[i];
	}
	if(n<=30) dfs(1);
	else{
		if(sum==n) printf("1");
		else printf("0");
		return 0;
	}
	printf("%lld",ans);
	return 0;
}
